// 返回闭包
// type Val = Box<dyn Fn(i32) -> i32>; // 自定义类型名称
// fn return_clo() -> Val {
//     |x| x + 1
// }

fn return_clo () -> Box<dyn Fn(i32) -> i32> {
    Box::new(|x| x + 1)
}

fn main() {
    let a = return_clo();

    println!("{}", a(1));
    println!("{}", (*a)(2));
    println!("Hello, world!");
}
